Dynamic Link Preview Generation

ABSTRACT

Dynamic link preview generation techniques are described that overcome the challenges of conventional techniques by supporting link preview generation by a content provider system that proves the digital content via a respective network address. In one example, a content provider system, based on a request received from a service provider system, identifies a communication platform of the service provider system that is to be used to communicate the shared link. Upon identifying the communication platform, the content provider system locates customization data that describes how the link preview is to be generated for the communication platform. In response, the content provider system renders digital content available via the network address to generate the link preview.

RELATED APPLICATIONS

100011 This application is a continuation of and claims priority to U.S.patent application Ser. No. 16/986,581, filed Aug. 6, 2020, and titled“Dynamic Link Preview Generation”, which claims priority to U.S. patentapplication Ser. No. 16/237,541, filed Dec. 31, 2018, and titled“Dynamic Link Preview Generation”, the entire disclosures of which arehereby incorporated by reference.

BACKGROUND

A multitude of digital content may be accessed by users of computingdevices via network addresses as part of the Internet. For example,there are millions of websites, each having a multitude of webpages thatare usable to access digital images, animations, audio content,multimedia content, and so forth. Initially, in order to share access orawareness of this digital content, a user of a computing device copiedthe network address and sent it to another user of another computingdevice as text. Oftentimes, however, these network addresses aredifficult to parse and accurately copy, thereby resulting in userfrustration and computational inefficiencies caused by repeatedattempts.

Accordingly, subsequent techniques have been developed to share thenetwork address using a link preview. However, these techniques lackrichness and are implemented either locally at the user's device or by acommunication platform, via which, the link is to be shared. As aresult, control of link generation is assumed by user's device orcommunication platform and is not configured to address the wide rangeof digital content that is available via the multitude of webpages. Inone conventional example, a user may wish to share a link to a webpagewith another user via a messaging communication platform. In response,the messaging communication platform typically selects the first imageavailable via the webpage and a title of the page as the link preview.Thus, the generation of the link preview is controlled by the messagingcommunication platform and not a content provider of the webpage.

Although conventional techniques have been developed that involve OpenGraph (OG) metadata, these techniques support a limited ability for thecontent provider to indicate which content is available via the webpageand still do not support an ability to control how content is used togenerate a link preview. As such, conventional link preview generationtechniques do not support an ability of a content provider to controlgeneration of link previews that are communicated by other devices. Thislimits an ability of these systems to control their digital content andmissed opportunities to expand a richness of this content when shared aspart of link previews by devices “outside” of the content providersystem.

SUMMARY

Dynamic link preview generation techniques are described that overcomethe challenges of conventional techniques by supporting link previewgeneration by a content provider system that proves the digital contentvia a respective network address. In one example, a content providersystem, based on a request received from a service provider system,identifies a communication platform of the service provider system thatis to be used to communicate the shared link. This may be performed in avariety of ways, including based on a network domain, from which, thecontent request is received, as part of an Open Graph protocol request,and so forth.

Upon identifying the communication platform, the content provider systemlocates customization data that describes how the link preview is to begenerated for the communication platform. The customization data mayspecify which portions of the digital content are to be included in thelink preview, a size and/or aspect ratio of the digital images,resolution, colors, and so forth.

In response, the content provider system renders digital contentavailable via the network address at the appropriate size, e.g., aspectratio, resolution, etc. This rendered digital content may then be cachedas well as communicated to the service provider system for use as a linkpreview between the first and second client devices, e.g., via thecommunication platform. In this way, the link preview may be customizedto address “how” the link preview is communicated via the communicationplatform and also control “what” is included in the link and as suchprovides a degree of control of exposure of digital content to thecontent provider system that is not possible using conventionaltechniques. Further discussion of these and other examples is includedin the following sections and shown in corresponding figures.

This Summary introduces a selection of concepts in a simplified formthat are further described below in the Detailed Description. As such,this Summary is not intended to identify essential features of theclaimed subject matter, nor is it intended to be used as an aid indetermining the scope of the claimed subject matter.

BRIEF DESCRIPTION OF THE DRAWINGS

The detailed description is described with reference to the accompanyingfigures. Entities represented in the figures may be indicative of one ormore entities and thus reference may be made interchangeably to singleor plural forms of the entities in the discussion.

FIG. 1 is an illustration of an environment in an example implementationthat is operable to employ dynamic link preview generation techniquesdescribed herein.

FIG. 2 depicts a system in an example implementation showing operationof a preview generation module of FIG. 1 in greater detail as generatinga link preview.

FIG. 3 is a flow diagram depicting a procedure in an exampleimplementation in which a link preview is generated based oncustomization data located for a particular platform that originated therequest.

FIGS. 4 and 5 depict respective examples of link previews generated fordifferent communication platforms.

FIG. 6 depicts an example implementation in which a link preview isconfigured to encourage a user to take an action, such as conversion ofa good or service associated with the digital content available via thenetwork address as digital marketing content.

FIG. 7 depicts a system in an example implementation in which acustomization data module generates a model that is used to controlcustomizations applied to link previews.

FIG. 8 is a flow diagram depicting a procedure in an exampleimplementation in which a model is generated to escribe user interactionwith link preview to customize generation of subsequent link previews.

FIG. 9 illustrates an example system including various components of anexample device that can be implemented as any type of computing deviceas described and/or utilize with reference to FIGS. 1-8 to implementembodiments of the techniques described herein.

DETAILED DESCRIPTION Overview

Conventional link preview generation techniques do not support anability of a content provider system that makes digital contentavailable via a network address (e.g., URL) to control how a linkpreview is generated to share awareness and access to that digitalcontent. This limits an ability of the content provider system to expanda richness of link previews using conventional techniques, includingwhat digital content is included in the link preview and how thatdigital content is displayed as part of the link preview.

Accordingly, dynamic link preview generation techniques are describedthat overcome the challenges of conventional techniques by supportinglink preview generation by a content provider system that proves thedigital content via a respective network address. In one example, a userof a first client device may wish to share a network address (e.g.,link) with a user of a second client device via a communication platformof a service provider system. The communication platform may beconfigured in a variety of ways, such as to support instant messaging,social network communications (e.g., “shares” or posts), electronicmessages, email, and so forth. Examples of communication platformsinclude Apple® iMessage® and are also supported as part of socialnetwork systems including Facebook®, Instagram®, Linkedln®, Snapchat®,and so forth.

The service provider system thus receives an input from the first clientdevice in this example to share a network address with the second clientdevice. In response, the service provider system generates a contentrequest to a content provider system that makes the digital contentavailable via the network address, e.g., a URL. The content providersystem, based on the request, identifies a communication platform of theservice provider system that is to be used to communicate the sharedlink. This may be performed in a variety of ways, including based on adomain, from which, the content request is received, as part of an OpenGraph protocol request, and so forth.

Upon identifying the communication platform, the content provider systemlocates customization data that describes how the link preview is to begenerated for the communication platform. The customization data mayspecify which portions of the digital content are to be included in thelink preview, a size and/or aspect ratio of the digital images,resolution, colors, and so forth. In this way, the customization datamay be used to address nuances of the communication platform. Thecustomization data, for instance, may indicate an appropriate size to beused as part of the link preview.

In response, the content provider system renders digital contentavailable via the network address at the appropriate size, e.g., aspectratio, resolution, etc. This rendered digital content may then be cachedas well as communicated to the service provider system for use as a linkpreview between the first and second client devices, e.g., via thecommunication platform. The link preview is selectable by the secondclient device to support navigation to digital content available via thenetwork address and also provides information indicative of what digitalcontent is available via the network address.

In the example above, for instance, the link preview may be customizedto address “how” the link preview is communicated via the communicationplatform, e.g., a size of the link preview, orientation of a userinterface to be used to display the link preview, colors used by a userinterface of the communication platform, and so on. The customizationdata may also be used to specify which portions of the digital contentare to included in the link preview, which may differ based on thecommunication platform that is to be used to communicate the linkpreview. A first communication platform, for instance, may supportcommunication of link previews having a smaller digital image size ororientation than that supported by another communication platform.Accordingly, the content provider system may leverage customization datato support generation of link previews that take into account thesedifferences in display characteristics. As a result, the link previewmay be generated in a variety of different ways based on thecommunication platform that is to be used to communicate the linkpreview.

Other considerations are also contemplated that do not involve acommunication platform used to communicate the preview, e.g., temporalconsiderations (i.e., time) such as a holiday or time of day at whichthe request is received, geographical considerations, demographic datacorresponding to a user for the first and/or second client device, andso forth. Further, the link may be configured to be interactive tosupport user interaction before being used to initiate navigation to acorresponding network address. The link, for instance, may output ananimation responsive to detection of a “hover” (e.g., gesture, cursor)over the link, provide a digital video, include game or question andanswer functionality, and so forth.

In one example, the preview may be personalized based on a user thatinitiates generation of the link for sharing and/or for a user that isto receive the generated link. The content provider system, forinstance, may also employ the customization data to increase alikelihood of initiation of a user action by a user of a client devicethat receives the link preview. The content provider system, forinstance, may generate a model based on monitored user interaction withpast link previews, e.g., whether the link preview is used to navigateto the network address, whether navigation caused conversion of a goodor service associated with the digital content (e.g., as digitalmarketing content), employed as part of A/B testing, and so on. This maybe based on a user that initiates generation of the link and/or a userthat is to receive the link and thus may address both users as part ofdynamically generating the link.

The model may then be used to select particular portions of the digitalcontent for inclusion in subsequent link previews, how the portion ofthe digital content are to be displayed, configuration of displaycharacteristics (e.g., colors) of the link preview itself, and so on.The link, for instance, may be generating dynamically based on userinteraction with advertisements included within the link. A variety ofother customizations are also contemplated. In this way, the contentprovider system may achieve a variety of advantages by controllinggeneration of the link preview that is not possible using conventionallink preview generation techniques that are implemented solely “outside”of the content provider system.

In an implementation, the content request is received from the serviceprovider system in an attempt to crawl digital content associated withthe network address to generate the preview. However, in thisimplementation at least one network address appears as a digital contentasset (e.g., a digital image such as“https:contentprovidersystem.comimage.jpeg” as part of Open Graphmetadata) but actually initiates generation of the link preview by thecontent provider system as described above. As a result, the linkpreview may still be generated based on the content provider system evenfor service provider systems that attempt to generate link previews,themselves. Further discussion of these and other examples is includedin the following sections and shown in corresponding figures.

In the following discussion, an example environment is first describedthat may employ the techniques described herein. Example procedures arethen described which may be performed in the example environment as wellas other environments. Consequently, performance of the exampleprocedures is not limited to the example environment and the exampleenvironment is not limited to performance of the example procedures.

Example Environment

FIG. 1 is an illustration of a digital medium environment 100 in anexample implementation that is operable to employ dynamic link previewgeneration techniques described herein. The illustrated environment 100includes a first client device 102, a second client device 104, acontent provider system 106, and a service provider system 108 that arecommunicatively coupled, one to another, via a network 110. Computingdevices that implement these devices and systems may be configured in avariety of ways.

A computing device, for instance, may be configured as a desktopcomputer, a laptop computer, a mobile device (e.g., assuming a handheldconfiguration such as a tablet or mobile phone as illustrated for thefirst and second client devices), and so forth. Thus, a computing devicemay range from full resource devices with substantial memory andprocessor resources (e.g., personal computers, game consoles) to alow-resource device with limited memory and/or processing resources(e.g., mobile devices). Additionally, although a single computing deviceis depicts and described in some instances, a computing device may berepresentative of a plurality of different devices, such as multipleservers utilized by a business to perform operations “over the cloud”for the content and service provider systems 106, 108 and as furtherdescribed in relation to FIG. 9.

The first and second client devices 102, 104 are communicatively coupledvia the network 110 using respective communication modules 112, 114 tocommunicate using the service provider system 108 as an intermediary.The illustrated service provider system 108, for instance, isrepresentative of one of several different service provider systems thatare configured to support communication between the devices through useof a platform manager module 116 and a communication platform 118. Theplatform manager module 116 is representative of functionality thatsupports this communication using the communication platform 118 via thenetwork 110.

Communications supported by the communication platform 118 between thefirst and second client devices 102, 104 may be configured in a varietyof ways. Examples of configurations of communications include instantmessages, posts, emails, text messages and so on that may becommunicated via a variety of communication platforms 118. Examples ofcommunication platforms 118 include Apple® iMessage®, Google® Android®Messages, Facebook® instant messages and posts, Instagram® images anddirect messages, LinkedIn® posts and messages, WhatsApp® instantmessages, 9®, WeChat®, Tumblr®, Twitter® tweets, Skype®, Pinterest®photo sharing and bookmarking, YouTube® videos and comments, and manyothers. As such, communications that are transmitted and received viathe multitude of communication platforms 118 available to the first andsecond client devices 102, 104 may support different amounts,orientations and arrangements of digital content, one to another.

In some instances as previously described, users may wish to shareinformation about digital content they have located that is accessiblevia the network 110. Suppose a user of the first client device 102, forinstance, interacts with the communication module 112 to access digitalcontent 120 managed by a content manager module 122, which is stored ina storage device 124 of a content provider system 106. The digitalcontent 120 may be configured in a variety of ways, such as webpages,digital images, digital audio, digital video and multimedia content,documents, and so forth that is made available via a network address(e.g., uniform resource locator) by the content manager module 122.

In the illustrated example, the digital content 120 is configured as awebpage that includes a variety of different portions including a searchbar, tag line, dynamic digital images that are scrolled throughautomatically, a sub-header, and so forth. A user of the first clientdevice 102 that views this webpage may then wish to make a user of thesecond client device 104 aware of the webpage by sharing a link to anetwork address of the webpage via the communication platform 118.

As previously described, conventional techniques used to generate a linkpreview are performed at the client device or service provider system108, and are not supported at the content provider system 106. In oneconventional example, structured metadata (e.g., in accordance with anOpen Graph protocol) is added to a header section of the webpage toidentify items of digital content that are available via the webpage,e.g., “og:title” for a title and “og:image” for an image. The serviceprovider system that is to generate the link preview in thisconventional example then generates the link preview as desired based onthe identified items from the digital content. As a result, the contentprovider system is not given a degree of control as to how the digitalcontent, as a link preview, is shared by the service provider system.

In the techniques described herein, however, the content provider system106 employs a preview generation module 126 to generate the link preview128 that is then shared by the service provider system 108, even in aninstance in which the service provider system 108 is also configured togenerate the link preview. Continuing with the previous example, forinstance, the service provider system 108 may make a request for a titleand an image based on the Open Graph tags, e.g., “og:title” for a titleand “og:image” for an image. In this example, however, the networkaddress of the “og:image” tag for the digital image causes the previewgeneration module 126 to generate a link preview 128, if not alreadygenerated and available via a cache. As a result, the link preview 128may be generated by the content provider system 106 even for a serviceprovider system 108 that attempts to generate link previews, itself, andthus maintains control of these previews at the content provider system106.

The link preview 128 may be customized in a variety of different ways bythe preview generation module 126. Examples of customization includecustomizations based on a communication platform 118, via which, thelink preview 128 is to be communicated and viewed. This may be used, forinstance, to address available resolutions, theme colors, image sizes,and output options of the communication platform 118. This may also beused to select portions of the digital content 120, such as to increasea likelihood of initiation of a user interaction, such as conversion ofa good or service associated with the digital content 120.

Other customization examples are also contemplated, such as to address atemporal consideration, such as a holiday. The link preview 128, forinstance, may be configured to be interactive to support userinteraction prior to being used to initiate navigation to acorresponding network address, as part of initiating this navigation,and so forth. The link preview 128, for instance, may output ananimation responsive to detection of a “hover” (e.g., gesture, cursor)over the link, output a digital video, include game or question andanswer functionality, and so forth. In another instance, the linkpreview 128 includes dynamic display functionality that is usable inconjunction with selection of the link preview 128 to initiatenavigation to the network address, e.g., as an animation thatdynamically expands upon digital content available via the link, anability to play digital media including audio and video throughinteraction with the link preview 128, and so forth. In this way, thecontent provider system 106 may customize generation of the link preview128 as desired, further discussion of which is included in the followingsections.

In general, functionality, features, and concepts described in relationto the examples above and below may be employed in the context of theexample procedures described in this section. Further, functionality,features, and concepts described in relation to different figures andexamples in this document may be interchanged among one another and arenot limited to implementation in the context of a particular figure orprocedure. Moreover, blocks associated with different representativeprocedures and corresponding figures herein may be applied togetherand/or combined in different ways. Thus, individual functionality,features, and concepts described in relation to different exampleenvironments, devices, components, figures, and procedures herein may beused in any suitable combinations and are not limited to the particularcombinations represented by the enumerated examples in this description.

Dynamic Link Preview Generation

FIG. 2 depicts a system 200 in an example implementation showingoperation of the preview generation module 126 of FIG. 1 in greaterdetail as generating a link preview 128. FIG. 3 depicts a procedure 300in an example implementation in which a link preview is generated basedon customization data located for a particular platform that originatedthe request.

The following discussion describes techniques that may be implementedutilizing the previously described systems and devices. Aspects of eachof the procedures may be implemented in hardware, firmware, software, ora combination thereof The procedures are shown as a set of blocks thatspecify operations performed by one or more devices and are notnecessarily limited to the orders shown for performing the operations bythe respective blocks. In portions of the following discussion,reference will be made to FIGS. 1-6.

To begin in this example, a first client device 102 interacts with aservice provider system 108. The service provider system 108 includes aplatform manager module 116 supporting a communication platform 118, viawhich, the first client device 102 may communicate with the secondclient device 104 via the network 110. The communication platform 118may support a wide variety of communications delivered in a wide varietyof ways via the network 110. Examples of these communications instantmessaging, social network communications (e.g., “shares” or posts),electronic messages, and so forth. Examples of communication platformsinclude Apple® iMessage® and are also supported as part of socialnetwork systems including Facebook®, Instagram®, Linkedln®, Snapchat®,and so forth as previously described.

The first client device 102, via a communication module 112 (e.g.,browser, network enabled application, etc.) initiates a link sharerequest 202 which is communicated to the service provider system 108.The first client device 102, for instance, may navigate via a browser ordedicated application to a network address and wish to “share” digitalcontent available at the network address, e.g., a webpage, digitalmedia, and so forth, via the communication platform 118.

A user of the first client device 102, for example, may navigate to awebpage and select a “share” feature via a user interface. Selection ofthe share feature causes output of options of communication platforms118 by the communication module 112, via which, the user wishes to sharea link to the webpage, e.g., via an instant message, post in a socialmedia service, and so forth. In response, the communication module 112communicates the link share request 202 to a service provider system 108that implemented the selected communication platform 118.

Receipt of the link share request 202 by the service provider system 108causes the platform manager module 116 to access the network addressassociated with the link share request 202 in order to generate a linkpreview. The service provider system 108, for instance, may beconfigured to support Open Graph tags, e.g., “og:title” for a title and“og:image” for an image. The title and image received by the serviceprovider system 108 in response to the request is then to be used in anOG tag scenario by the service provider system 108 to generate the linkpreview, itself. However, in this example the content provider system106 generates the link preview 128, itself, which is then passed to theservice provider system 108 for use by the client devices as the digitalimage. As a result, the content provider system 106 controls how thedigital content is presented by the service provider system 108 as partof the link preview 128.

A content request 204, for instance, is received by the content providersystem 106 via a network 110 for digital content that is available via anetwork address (block 302). The content request 204, for instance, mayfollow the Open Graph tags and request a title and image associated withthe network address, e.g., “og:title” for a title and “og:image” for animage. The content request 204 for the image “og:image,” for instance,instead of simply providing a digital image from a webpage may be usedby the content provider system 106 to obtain a link preview 128. Assuch, even in instances in which the service provider system 108 isconfigured to generate a link preview, the content provider system 106may instead generate this preview and pass it to the service providersystem 108 as further described below. This gives a degree of control tothe content provider system 106 in generating the link preview 128 thatis not possible using conventional techniques. In another example, thecontent request 204 requests digital content that is generally availablevia the network address, e.g., an entirety of a webpage.

A communication platform 118 is then identified that corresponds to aservice provider system 108 that originated the request (block 304). Inthe illustrated example, the content provider system 106 includes aplatform identification module 206 that is configured to identify aplatform ID 208 from the content request 204. The content request 204,for instance, may include a header that specifies a network domain thatoriginated the request. From this network domain, the platformidentification module 206 may determine the communication platform 118used by the service provider system 108 to support communication betweenclient devices.

The platform ID 208 is then passed from the platform identificationmodule 206 as an input to a customization data module 210 in theillustrated example. The customization data module 210 is representativeof functionality to locate customization data 212 from a storage device214 that corresponds to the identified communication platform 118 of theservice provider system 108 (block 306). The customization data 212, forinstance, may describe display characteristics, color themes,resolutions, aspect ratios, types of digital content supported, and soforth as used by the communication platform 118. The customization data212 may also describe digital content that has been successful ininitiating a user action via the identified communication platform 118,e.g., conversion of a good or service associated with digital contentavailable via the network address and thus serve as digital marketingcontent (e.g., advertisements) as further described below.

The customization data 212 is passed from the customization data module210 as an input to a preview generation module 126. A link preview 128is then generated by the preview generation module 126 of the digitalcontent available via the network address based on the customizationdata 212. The link preview is selectable to cause navigation to thenetwork address to access the digital content (block 308). Continuingwith the example above, the content request 204 may include Open Graphtags to request a title and image associated with the network address,e.g., “og:title” for a title and “og:image” for a digital image, whichis then to be used by the service provider system 108, itself, togenerate the link preview 128.

In the illustrated example, however, the OG tag for the digital image(or title) causes the content provider system 106 to instead generatethe link preview 128 and pass it back to the service provider system 108as the digital image that is to be used to generate the link by theservice provider system 108. To do so in one example, a digital contentlocation module 216 is utilized to locate digital content available viathe network address, e.g., from a storage device 218. The previewgeneration module 126 then renders the digital content (e.g., as an HTMLpage) in headless chrome and captures a screenshot to generate a digitalimage, e.g., having a size, resolution, aspect ratio, and so on asspecified by the customization data 212.

The captured screenshot is then used by the preview generation module126 as the link preview 128 which is communicated by the contentprovider system 106 via the network 110 for receipt by the serviceprovider system 108 (block 310). In this way, the preview generationmodule 126 of the content provider system 106 may control how digitalcontent that originates from the content provider system 106 isrepresented as part of the link preview 128 used by the service providersystem 108. The link preview 128 may then be communicated by the serviceprovider system 108 to the second client device 104, which may renderthe link preview 128 in a user interface as illustrated in FIG. 1 and isselectable to cause the communication module 114 to navigate to thenetwork address and obtain the digital content available via thisnetwork address.

The dynamic link preview generation techniques described above may beperformed in real time as the content request 204 is received. As aresult, this functionality is available for millions of webpages withoutrequiring offline generation and storage of the link previews 128. In animplementation, however, the link preview 128 is cached in a storagedevice for use in subsequent requests, e.g., for a defined amount oftime, based on an amount of past usage, and so forth. The link previewmay also be generated “offline,” e.g., before receipt of the contentrequest 204.

FIGS. 4 and 5 depict respective examples of link previews 400, 500generated for different communication platforms 118. The link preview400 of FIG. 4 is configured to take advantage of use as a post in anewsfeed as part of a social network system. This includes formatted fordisplay in a generally landscape orientation with a selection ofmultiple digital images. The link preview 500 of FIG. 5, however, isconfigured to output in a portrait orientation with limited display areaas an instant message. In this way, link previews 400, 500 for the samedigital content available from the same network address may be generateddifferently to address the communication platform 118, via which, thelink preview is to be communicated.

FIG. 6 depicts an example implementation 600 in which a link preview isconfigured to encourage a user to take an action, such as conversion ofa good or service associated with the digital content available via thenetwork address as digital marketing content. The preview generationmodule 126 in this example is configured to generate the link preview128 based on a variety of factors in order to increase a likelihood thata user undertakes an action upon viewing the link preview 128, e.g.,conversion such as “clicking” on the link, subsequent purchase of a goodor service associated with a network address, for which, the linkpreview 128 is generated, and so forth.

The preview generation module 126, for instance, may generate a linkpreview 602 that includes an offer for “free shipping” and another linkpreview 604 as “10% off” for the same communication platform 118. Aspart of A/B testing, the preview generation module 126 may then learnwhich options perform best in achieving the desired result. As a result,the link preview 128 may support increased functionality and revenueopportunities that are not available using conventional techniques.

FIG. 7 depicts a system 700 in an example implementation in which acustomization data module generates a model that is used to controlcustomizations applied to link previews. FIG. 8 depicts a procedure 800in an example implementation in which a model is generated to describeuser interaction with link previews to customize generation ofsubsequent link previews. This customization may be based on a user thatinitiated generation of the link, a user that is to receive the link,and so forth.

The following discussion describes techniques that may be implementedutilizing the previously described systems and devices. Aspects of eachof the procedures may be implemented in hardware, firmware, software, ora combination thereof. The procedures are shown as a set of blocks thatspecify operations performed by one or more devices and are notnecessarily limited to the orders shown for performing the operations bythe respective blocks. In portions of the following discussion,reference will be made to FIGS. 7 and 8.

To begin in this example, user interaction data 702 is received by thecustomization data module 210 describing user interaction with linkpreviews and characteristics of the link previews. The link previews aregenerated based on use by respective communication platforms to previewdigital content available via a respective network address (block 802).The user interaction data 702, for instance, may describes acommunication platform 704, for which, the link preview is generated,link preview characteristics 706 (e.g., digital images, colors, types ofcontent, and so on included in the link preview), user characteristics708 (e.g., demographic information such as age, gender, geographiclocation) of users that interacted with the link previews (e.g.,initiated the link preview 128 and/or received the link preview 128),indications of performance of a user action 710 (e.g., whether the linkpreview resulted in conversion), and so forth.

The user interaction data is then received as an input by a modeltraining module 712 to generate a model 714 that describes the userinteraction with the link previews (block 804). A variety of techniquesmay be performed. In a first example, the model training module 712 usesa regression analysis module 718 to generate the model 714 usingregression analysis. Regression analysis is a statistical technique usedto estimate relationships among variables in the user interaction data702.

In a second example, a machine learning module 716 is used to train amodel using machine learning techniques in which the user interactiondata 702 is used to train the model 714 using a loss function. Modelstrained using machine learning may include decision trees, supportvector machines, linear regression, logistic regression, Bayesiannetworks, random forest learning, dimensionality reduction algorithms,boosting algorithms, artificial neural networks, deep learning, and soon. Thus, a model 714 trained using machine learning is configured tomake high-level abstractions in data by generating data-drivenpredictions or decisions from the known input data.

The model 714, once trained, is then passed to a model use module 720 togenerate customization data 212 based on subsequent user interactiondata 722 to customize subsequent link previews (block 806). Thesubsequent user interaction data 722, for instance, may describe acommunication platform, link preview characteristics, usercharacteristics (e.g., sender or receiver), and/or indication ofperformance of a user action 710. Based on this information, thecustomization data 212 is generated to describe characteristics that aresuccessful in achieving a desired result, e.g., conversion of a good orservice. In this way, the link preview 128 may be configured to takeadvantage of digital marketing techniques to increase a richness of thelink preview 128, which is not possible in conventional techniques. Thecustomization data 212, for instance, may be based on previous userinteractions and then used to customize generation of subsequent links,e.g., to increase a likelihood of conversion.

Example System and Device

FIG. 9 illustrates an example system generally at 900 that includes anexample computing device 902 that is representative of one or morecomputing systems and/or devices that may implement the varioustechniques described herein. This is illustrated through inclusion ofthe preview generation module 126. The computing device 902 may be, forexample, a server of a service provider, a device associated with aclient (e.g., a client device), an on-chip system, and/or any othersuitable computing device or computing system.

The example computing device 902 as illustrated includes a processingsystem 904, one or more computer-readable media 906, and one or more I/Ointerface 908 that are communicatively coupled, one to another. Althoughnot shown, the computing device 902 may further include a system bus orother data and command transfer system that couples the variouscomponents, one to another. A system bus can include any one orcombination of different bus structures, such as a memory bus or memorycontroller, a peripheral bus, a universal serial bus, and/or a processoror local bus that utilizes any of a variety of bus architectures. Avariety of other examples are also contemplated, such as control anddata lines.

The processing system 904 is representative of functionality to performone or more operations using hardware. Accordingly, the processingsystem 904 is illustrated as including hardware element 910 that may beconfigured as processors, functional blocks, and so forth. This mayinclude implementation in hardware as an application specific integratedcircuit or other logic device formed using one or more semiconductors.The hardware elements 910 are not limited by the materials from whichthey are formed or the processing mechanisms employed therein. Forexample, processors may be comprised of semiconductor(s) and/ortransistors (e.g., electronic integrated circuits (ICs)). In such acontext, processor-executable instructions may beelectronically-executable instructions.

The computer-readable storage media 906 is illustrated as includingmemory/storage 912. The memory/storage 912 represents memory/storagecapacity associated with one or more computer-readable media. Thememory/storage component 912 may include volatile media (such as randomaccess memory (RAM)) and/or nonvolatile media (such as read only memory(ROM), Flash memory, optical disks, magnetic disks, and so forth). Thememory/storage component 912 may include fixed media (e.g., RAM, ROM, afixed hard drive, and so on) as well as removable media (e.g., Flashmemory, a removable hard drive, an optical disc, and so forth). Thecomputer-readable media 906 may be configured in a variety of other waysas further described below.

Input/output interface(s) 908 are representative of functionality toallow a user to enter commands and information to computing device 902,and also allow information to be presented to the user and/or othercomponents or devices using various input/output devices. Examples ofinput devices include a keyboard, a cursor control device (e.g., amouse), a microphone, a scanner, touch functionality (e.g., capacitiveor other sensors that are configured to detect physical touch), a camera(e.g., which may employ visible or non-visible wavelengths such asinfrared frequencies to recognize movement as gestures that do notinvolve touch), and so forth. Examples of output devices include adisplay device (e.g., a monitor or projector), speakers, a printer, anetwork card, tactile-response device, and so forth. Thus, the computingdevice 902 may be configured in a variety of ways as further describedbelow to support user interaction.

Various techniques may be described herein in the general context ofsoftware, hardware elements, or program modules. Generally, such modulesinclude routines, programs, objects, elements, components, datastructures, and so forth that perform particular tasks or implementparticular abstract data types. The terms “module,” “functionality,” and“component” as used herein generally represent software, firmware,hardware, or a combination thereof The features of the techniquesdescribed herein are platform-independent, meaning that the techniquesmay be implemented on a variety of commercial computing platforms havinga variety of processors.

An implementation of the described modules and techniques may be storedon or transmitted across some form of computer-readable media. Thecomputer-readable media may include a variety of media that may beaccessed by the computing device 902. By way of example, and notlimitation, computer-readable media may include “computer-readablestorage media” and “computer-readable signal media.”

“Computer-readable storage media” may refer to media and/or devices thatenable persistent and/or non-transitory storage of information incontrast to mere signal transmission, carrier waves, or signals per se.Thus, computer-readable storage media refers to non-signal bearingmedia. The computer-readable storage media includes hardware such asvolatile and non-volatile, removable and non-removable media and/orstorage devices implemented in a method or technology suitable forstorage of information such as computer readable instructions, datastructures, program modules, logic elements/circuits, or other data.Examples of computer-readable storage media may include, but are notlimited to, RAM, ROM, EEPROM, flash memory or other memory technology,CD-ROM, digital versatile disks (DVD) or other optical storage, harddisks, magnetic cassettes, magnetic tape, magnetic disk storage or othermagnetic storage devices, or other storage device, tangible media, orarticle of manufacture suitable to store the desired information andwhich may be accessed by a computer.

“Computer-readable signal media” may refer to a signal-bearing mediumthat is configured to transmit instructions to the hardware of thecomputing device 902, such as via a network. Signal media typically mayembody computer readable instructions, data structures, program modules,or other data in a modulated data signal, such as carrier waves, datasignals, or other transport mechanism. Signal media also include anyinformation delivery media. The term “modulated data signal” means asignal that has one or more of its characteristics set or changed insuch a manner as to encode information in the signal. By way of example,and not limitation, communication media include wired media such as awired network or direct-wired connection, and wireless media such asacoustic, RF, infrared, and other wireless media.

As previously described, hardware elements 910 and computer-readablemedia 906 are representative of modules, programmable device logicand/or fixed device logic implemented in a hardware form that may beemployed in some embodiments to implement at least some aspects of thetechniques described herein, such as to perform one or moreinstructions. Hardware may include components of an integrated circuitor on-chip system, an application-specific integrated circuit (ASIC), afield-programmable gate array (FPGA), a complex programmable logicdevice (CPLD), and other implementations in silicon or other hardware.In this context, hardware may operate as a processing device thatperforms program tasks defined by instructions and/or logic embodied bythe hardware as well as a hardware utilized to store instructions forexecution, e.g., the computer-readable storage media describedpreviously.

Combinations of the foregoing may also be employed to implement varioustechniques described herein. Accordingly, software, hardware, orexecutable modules may be implemented as one or more instructions and/orlogic embodied on some form of computer-readable storage media and/or byone or more hardware elements 910. The computing device 902 may beconfigured to implement particular instructions and/or functionscorresponding to the software and/or hardware modules. Accordingly,implementation of a module that is executable by the computing device902 as software may be achieved at least partially in hardware, e.g.,through use of computer-readable storage media and/or hardware elements910 of the processing system 904. The instructions and/or functions maybe executable/operable by one or more articles of manufacture (forexample, one or more computing devices 902 and/or processing systems904) to implement techniques, modules, and examples described herein.

The techniques described herein may be supported by variousconfigurations of the computing device 902 and are not limited to thespecific examples of the techniques described herein. This functionalitymay also be implemented all or in part through use of a distributedsystem, such as over a “cloud” 914 via a platform 916 as describedbelow.

The cloud 914 includes and/or is representative of a platform 916 forresources 918. The platform 916 abstracts underlying functionality ofhardware (e.g., servers) and software resources of the cloud 914. Theresources 918 may include applications and/or data that can be utilizedwhile computer processing is executed on servers that are remote fromthe computing device 902. Resources 918 can also include servicesprovided over the Internet and/or through a subscriber network, such asa cellular or Wi-Fi network.

The platform 916 may abstract resources and functions to connect thecomputing device 902 with other computing devices. The platform 916 mayalso serve to abstract scaling of resources to provide a correspondinglevel of scale to encountered demand for the resources 918 that areimplemented via the platform 916. Accordingly, in an interconnecteddevice embodiment, implementation of functionality described herein maybe distributed throughout the system 900. For example, the functionalitymay be implemented in part on the computing device 902 as well as viathe platform 916 that abstracts the functionality of the cloud 914.

Conclusion

Although the invention has been described in language specific tostructural features and/or methodological acts, it is to be understoodthat the invention defined in the appended claims is not necessarilylimited to the specific features or acts described. Rather, the specificfeatures and acts are disclosed as example forms of implementing theclaimed invention.

What is claimed is:
 1. A method implemented by at least one computingdevice, the method comprising: receiving, by the at least one computingdevice, a request via a network for digital content that is availablevia a network address; identifying, by the at least one computingdevice, an originator that corresponds to a service provider system thatoriginated the request; locating, by the at least one computing device,customization data that corresponds to the identified originator;generating, by the at least one computing device, a link preview ofdigital content available via the network address based on the locatedcustomization data; and caching, by the at least one computing device,the link preview of the digital content, the link preview selectable tocause navigation to the network address to access the digital content.2. The method as described in claim 1, wherein the service providersystem that originated the request includes a communication platformthat supports communication between a first client device and a secondclient device.
 3. The method as described in claim 2, wherein therequest is originated by the service provider system responsive to aninput received from the first client device by the service providersystem to share the network address in a communication with the secondclient device.
 4. The method as described in claim 2, wherein thedigital content is a webpage and the service provider system implementsa social network, via which, the link preview is to be shared.
 5. Themethod as described in claim 1, wherein the identifying is based on anidentifier of a network domain from which the request originated.
 6. Themethod as described in claim 1, wherein the customization data describesa size to be used to generate the link preview.
 7. The method asdescribed in claim 1, wherein the customization data describes whichdigital image of a plurality of digital images that are included as partof the digital content is to be included in the link preview.
 8. Themethod as described in claim 1, wherein the link preview is userselectable to navigate to the network address.
 9. The method asdescribed in claim 1, wherein the customization data for the identifiedoriginator identifies a portion of the digital content for inclusion inthe link preview based on a likelihood of causing selection of the linkpreview to cause navigation to the network address.
 10. The method asdescribed in claim 1, wherein the customization data for the identifiedoriginator identifies a portion of the digital content for inclusion inthe link preview based on a likelihood of causing conversion of a goodor service associated with the digital content.
 11. The method asdescribed in claim 1, wherein the customization data for the identifiedoriginator identifies a portion of the digital content for inclusion inthe link preview based on machine learning using a model trained basedon previous link previews generated for the identified originator. 12.The method as described in claim 1, wherein the generating of the linkpreview includes rendering the digital content having a size based onthe customization data.
 13. The method as described in claim 1, whereinthe customization data causes the link preview generated for theoriginator to differ from a different link preview generated for adifferent originator.
 14. A non-transitory computer-readable storagemedium comprising instructions that are executable by at least oneprocessor to perform operations comprising: receiving a request via anetwork for digital content that is available via a network address;identifying an originator that corresponds to a service provider systemthat originated the request; locating customization data thatcorresponds to the identified originator; generating a link preview ofdigital content available via the network address based on the locatedcustomization data; and caching the link preview of the digital content,the link preview selectable to cause navigation to the network addressto access the digital content.
 15. The non-transitory computer-readablestorage medium as recited in claim 14, wherein the service providersystem that originated the request includes a communication platformthat supports communication between a first client device and a secondclient device.
 16. The non-transitory computer-readable storage mediumas recited in claim 15, wherein the request is originated by the serviceprovider system responsive to an input received from the first clientdevice by the system to share the network address in a communicationwith the second client device.
 17. The non-transitory computer-readablestorage medium as recited in claim 14, wherein the customization datadescribes which digital image of a plurality of digital images that areincluded as part of the digital content is to be included in the linkpreview.
 18. A system comprising: one or more hardware processors; and amachine-readable storage medium storing instructions that are executableby the one or more hardware processors to perform operations comprising:receiving a request via a network for digital content that is availablevia a network address; identifying an originator that corresponds to aservice provider system that originated the request; locatingcustomization data that corresponds to the identified originator;generating a link preview of digital content available via the networkaddress based on the located customization data; and caching the linkpreview of the digital content, the link preview selectable to causenavigation to the network address to access the digital content.
 19. Thesystem of claim 18, wherein the customization data is based ondemographic data of the originator.
 20. The system of claim 18, whereinthe originator implements a social network.